package 集合;

import java.util.HashMap;
import java.util.Map;

public class No242有效的字母异位词 {

    /**
     * 给定两个字符串 s 和 t ，编写一个函数来判断 t 是否是 s 的字母异位词。
     * 示例 1:
     * 输入: s = "anagram", t = "nagaram"
     * 输出: true
     * 示例 2:
     * 输入: s = "rat", t = "car"
     * 输出: false
     */

    public boolean isAnagram(String s, String t) {

        if(s.length()!=t.length())
            return false;

        //使用数组会更好一点
        Map<Character,Integer> map=new HashMap<>();

        for (int i = 0; i < s.length(); i++) {
            char c=s.charAt(i);
            map.put(c,map.getOrDefault(c,0)+1);
        }

        for (int i = 0; i < t.length(); i++) {
            char c=t.charAt(i);
            if(!map.containsKey(c)){
                return false;
            }else{
                if(map.get(c)<=0)
                    return false;
                map.put(c,map.get(c)-1);
            }
        }

        return true;
    }

}
